function curry(fn) {
  if (fn.length <= 1) {
    return fn;
  }
  const generator = (...args) => {//[1,2,3,4,6]
    // 递归
    if (args.length >= fn.length) {
      return fn(...args);
    }
    return (...args2) => {// 2
      return generator(...args, ...args2) // 1,2 3,4 6
    }
  };
  return generator
}
function add(a, b, c, d, e) {
  return a + b + c + d + e;
}
//
// function curriedAdd(x) {
//   return function (y) {
//     return function (z) {
//       return x + y + z;
//     }
//   }
// }
// console.log(add(1, 2, 3, 4));
let curriedAdd = curry(add);
// // 实现柯里化
let result = curriedAdd(1)(2)(3, 4);
console.log(result);//10 柯里化函数
